/**
 * 1.uni.getUserInfo -> 获取用户信息
 * 2.uni.login -> 获取code
 * 3.code -> 存储并获取用户完整信息
 * 4.保存用户信息
 */

// 1.uni.getUserInfo -> 获取用户信息
const getUserProfileApi = () => {
  return new Promise((resolve) => {
    uni.getUserProfile({
      desc: '用于完善会员资料', success: (infoRes) => {
        resolve(infoRes);
      }, fail:(err)=>{
        catchError(err)
      } 
    });
  })
};

// 2.uni.login -> 获取code
const wxLogin = () => {
  return new Promise(resolve => {
    uni.login({
      provider: 'weixin', success: (res) => {
        resolve(res)
      }, fail:(err)=>{
        catchError(err)
      } 
    })
  })
}


const catchError = (err) => {
  console.log(err)
  uni.hideLoading();
}

const getUserInfo = () => {
  return new Promise(async resolve => {
    uni.showLoading();
    // 1.uni.getUserInfo -> 获取用户信息
    const {userInfo} = await getUserProfileApi();
    // 2.uni.login => 获取code
    const {code} = await wxLogin()
    
    uni.hideLoading();
    // 存储用户信息，并将code返回，code 换取 openid、unionid、session_key 等信息
    uni.$u.vuex('vuex_user', userInfo);
    uni.$cu.toast('授权成功');    
    resolve(code);
  })
}

export default getUserInfo;
